Skip to content

Latest commit

 

History

History
107 lines (78 loc) · 3.87 KB

5 tricks for using the sudo command.org

File metadata and controls

107 lines (78 loc) · 3.87 KB

sudo命令的5个小技巧

sudoers 文件精确控制了用户权限, 不过只需少许努力, 你依然可以从 sudo 中获益匪浅. 在本文中, 我们会演示一些简单而又十分有价值的 sudo 用法.

Trick 1: Nearly effortless sudo usage

在大多数的Linux发行版中,可以很容易地做到让指定用户拥有以root运行命令的能力. 你甚至无需修改 /etc/sudoers 文件. 只需要将用户添加到 sudoadmin 组就行了.

/etc/group 文件中将用户加入 sudoadmin 组中就赋予了那些用户使用 sudo 运行命令的权利.

$ grep sudo /etc/group
sudo:x:27:shs,jdoe,peanut

在标准的 /etc/sudoers 配置中, 一旦将用户纳入这两个组中就能立即使用 sudo 命令了. 它的权限由 /etc/sudoers 文件中的下面行决定:

%sudo   ALL=(ALL:ALL) ALL

行内的 %sudo (或 %admin) 部分表示 sudo (或 admin) 组. 剩下的内容允许组中的成员以任意用户的身份运行任意命令. 这是内建的行为. 如果你不希望有人拥有这项能力, 那就不要把任何人加入 sudo (或 admin) 组中.

$ sudo whoami
[sudo] password for shs:
root

Trick 2: Running commands as other users — not just root

虽然大多数人使用 sudo 的目的是以root的身份运行命令, 但它也能允许你以其他用户的身份来运行命令. 只要使用 -u 参数加上指定的用户名就行了.

$ sudo -u jdoe whoami
[sudo] password for shs:
jdoe

Trick 3: Changing the default editor for the visudo command

必须使用 visudo 命令来西修改 /etc/sudoers 文件,该命令会帮你避免配置出错导致配置文件不可用(即,损害了 sudo). 若你不习惯改命令默认使用的编辑器,你可以使用下面命令修改它:

sudo update-alternatives --config editor

改命令会显示一个编辑器列表,并且当前使用的编辑器前有一个星号标识,在这里你可以选择自己喜欢的编辑器.

$ sudo update-alternatives --config editor
[sudo] password for shs:
There are 3 choices for the alternative editor (providing /usr/bin/editor).

Selection    Path               Priority   Status
------------------------------------------------------------
* 0            /bin/nano           40        auto mode
1            /bin/ed            -100       manual mode
2            /bin/nano           40        manual mode
3            /usr/bin/vim.tiny   10        manual mode

Press <enter> to keep the current choice[*], or type selection number:

Trick 4: Switching to root

时常会有需要在每个命令前都加上 “sudo” 的时候. 默认的 /etc/sudoers 配置中,sudo (或 admin) 组中的成员可以使用命令 sudo su - 来获取root权限. 但使用root账户时请一定小心.

$ sudo su -
[sudo] password for jdoe:
root@stinkbug:~#

Trick 5: Fixing a corrupt /etc/sudoers file

损坏的 /etc/sudoers 文件会使得 sudo 无法正常工作. 幸运的是有一些简单的方法可以帮到你, visudo 命令本身会提供一些错误的详细信息.

The problem

shs@stinkbug:/etc$ sudo date
>>> /etc/sudoers: syntax error near line 3 <<<
sudo: parse error in /etc/sudoers near line 3
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

The fix

shs@stinkbug:/etc$ pkexec visudo
>>> /etc/sudoers: syntax error near line 3 <<<